/**
 * 定义路由，并导出一个路由实例
 */
// 路由是一个插件，就必须注册
import Vue from 'vue'
import Router from 'vue-router'
import routes from '@/router/routes'

// 直接引入store
import store from '../store'

Vue.use(Router)

// 定义路由的模式，路由对象
// 引入路由组件--@是一个通配符，他表示从src目录开始

import Home from '@/pages/home'
import PurchaseList from '@/pages/purchase'
import PurchaseEdit from '@/pages/purchase/edit.vue'
import Setting from '@/pages/setting'

// 对路由进行实例化
const router = new Router({
    // 指定路由的模式--hash(default)、history
    mode: 'history',
    // 配置路由
    routes
})

// 实现全局的路由访问权限拦截
// router.beforeEach(function(to, from, next) {
//     // 通过meta属性来判断是否需要进行鉴权
//     if (to.meta.nologin) {
//         next()
//         return
//     }
//     // 表示需要鉴权，获取存储在sessionStorage中的加密数据
//     let token = sessionStorage.getItem('token')
//     // 判断这个数据是否存在
//     if (!token) {
//         next('/login')
//         return
//     }

//     // 进行解密，校验时效性 (Date.now() - token时间戳) / 1000 / 60 / 30 表示是30分钟
//     // 如果有效则表示在时效性内，进行页面跳转

//     // 校验token是否正确
//     // 这里的this是路由的实例，和组件的实例不是同一个事物
//     // 通过引入的单例store对象来获取token数据
//     let _sToken = store.getters['common/token']

//     // 进行token正确性校验
//     if (_sToken !== token) {
//         next('/login')
//         return
//     }

//     next()
// })

export default router